
<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="SmartEditor 文档">
      
      
        <meta name="author" content="chainmaker">
      
      
        <link rel="canonical" href="http://ide.chainmaker.org.cn/doc/SmartEditor%20%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/">
      
      
        <link rel="prev" href="..">
      
      
        <link rel="next" href="../SmartEditor%20%E6%80%8E%E4%B9%88%E5%86%99%E5%90%88%E7%BA%A6/">
      
      <link rel="icon" href="../images/favicon.png">
      <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.20">
    
    
      
        <title>SmartEditor 使用说明 - SmartEditor 文档</title>
      
    
    
      <link rel="stylesheet" href="../assets/stylesheets/main.eebd395e.min.css">
      
      

    
    
    
      
    
    
    <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
  </head>
  
  
    <body dir="ltr">
  
    
    
      <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#chainmaker-smarteditor" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
    
      

  

<header class="md-header md-header--shadow" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href=".." title="SmartEditor 文档" class="md-header__button md-logo" aria-label="SmartEditor 文档" data-md-component="logo">
      
  <img src="../images/favicon.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            SmartEditor 文档
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              SmartEditor 使用说明
            
          </span>
        </div>
      </div>
    </div>
    
    
    
      <label class="md-header__button md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
      </label>
      <div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
      <label class="md-search__icon md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
      </label>
      <nav class="md-search__options" aria-label="Search">
        
        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
        </button>
      </nav>
      
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list" role="presentation"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    


<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href=".." title="SmartEditor 文档" class="md-nav__button md-logo" aria-label="SmartEditor 文档" data-md-component="logo">
      
  <img src="../images/favicon.png" alt="logo">

    </a>
    SmartEditor 文档
  </label>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href=".." class="md-nav__link">
        Home
      </a>
    </li>
  

    
      
      
      

  
  
    
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
      
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          SmartEditor 使用说明
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        SmartEditor 使用说明
      </a>
      
        

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#chainmaker-smarteditor" class="md-nav__link">
    ChainMaker SmartEditor 使用说明
  </a>
  
    <nav class="md-nav" aria-label="ChainMaker SmartEditor 使用说明">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    产品背景及意义
  </a>
  
    <nav class="md-nav" aria-label="产品背景及意义">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_2" class="md-nav__link">
    目标用户
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_3" class="md-nav__link">
    整体业务流程
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_4" class="md-nav__link">
    注册/登录
  </a>
  
    <nav class="md-nav" aria-label="注册/登录">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_5" class="md-nav__link">
    注册
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_6" class="md-nav__link">
    登录
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_7" class="md-nav__link">
    全局界面分区说明
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_8" class="md-nav__link">
    全局快捷键说明
  </a>
  
    <nav class="md-nav" aria-label="全局快捷键说明">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#mac" class="md-nav__link">
    mac系统
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#windows" class="md-nav__link">
    Windows系统
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_9" class="md-nav__link">
    合约编写
  </a>
  
    <nav class="md-nav" aria-label="合约编写">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_10" class="md-nav__link">
    合约文件目录
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_11" class="md-nav__link">
    合约代码编写
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_12" class="md-nav__link">
    合约源码的管理
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_13" class="md-nav__link">
    合约调试
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_14" class="md-nav__link">
    合约编译及导出
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_15" class="md-nav__link">
    部署合约到链上
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_16" class="md-nav__link">
    调用链上合约
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
      
    </li>
  

    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../SmartEditor%20%E6%80%8E%E4%B9%88%E5%86%99%E5%90%88%E7%BA%A6/" class="md-nav__link">
        SmartEditor 怎么写合约
      </a>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#chainmaker-smarteditor" class="md-nav__link">
    ChainMaker SmartEditor 使用说明
  </a>
  
    <nav class="md-nav" aria-label="ChainMaker SmartEditor 使用说明">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    产品背景及意义
  </a>
  
    <nav class="md-nav" aria-label="产品背景及意义">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_2" class="md-nav__link">
    目标用户
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_3" class="md-nav__link">
    整体业务流程
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_4" class="md-nav__link">
    注册/登录
  </a>
  
    <nav class="md-nav" aria-label="注册/登录">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_5" class="md-nav__link">
    注册
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_6" class="md-nav__link">
    登录
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_7" class="md-nav__link">
    全局界面分区说明
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_8" class="md-nav__link">
    全局快捷键说明
  </a>
  
    <nav class="md-nav" aria-label="全局快捷键说明">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#mac" class="md-nav__link">
    mac系统
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#windows" class="md-nav__link">
    Windows系统
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_9" class="md-nav__link">
    合约编写
  </a>
  
    <nav class="md-nav" aria-label="合约编写">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#_10" class="md-nav__link">
    合约文件目录
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_11" class="md-nav__link">
    合约代码编写
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_12" class="md-nav__link">
    合约源码的管理
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_13" class="md-nav__link">
    合约调试
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_14" class="md-nav__link">
    合约编译及导出
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_15" class="md-nav__link">
    部署合约到链上
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#_16" class="md-nav__link">
    调用链上合约
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  


  <h1>SmartEditor 使用说明</h1>

<h2 id="chainmaker-smarteditor">ChainMaker SmartEditor 使用说明<a class="headerlink" href="#chainmaker-smarteditor" title="Permanent link">#</a></h2>
<h3 id="_1">产品背景及意义<a class="headerlink" href="#_1" title="Permanent link">#</a></h3>
<p>目前市面上主流的后端开发语言还是以Java、Go等语种为主，而区块链行业智能合约的开发语言的以Solidity居多，对于传统语种开发者想转型做合约开发而言存在一定的语言门槛。</p>
<p>为了降低使用门槛，使区块链出圈，团队致力打造Go语言合约相关生态，考虑到目前市面上尚无专门为Go语言服务的合约IDE产品，故我们自行研发长安链合约IDE， Chainmaker SmartEditor。</p>
<h4 id="_2">目标用户<a class="headerlink" href="#_2" title="Permanent link">#</a></h4>
<p>区块链合约开发工程师，以及其他对区块链感兴趣，想从事区块链行业相关应用开发的朋友。</p>
<h3 id="_3">整体业务流程<a class="headerlink" href="#_3" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/flow.png" /></p>
<h3 id="_4">注册/登录<a class="headerlink" href="#_4" title="Permanent link">#</a></h3>
<h4 id="_5">注册<a class="headerlink" href="#_5" title="Permanent link">#</a></h4>
<p>长安链合约IDE （Chainmaker SmartEditor）使用长安链GitLab账户直接登录，如果您没注册，可点击注册按钮跳转到 <a href="https://git.chainmaker.org.cn/users/sign_up">注册页面</a> 完成注册。</p>
<p><img alt="" src="../images/docs/loginregister.png" /></p>
<h4 id="_6">登录<a class="headerlink" href="#_6" title="Permanent link">#</a></h4>
<p>如果您已经有长安链GitLab账户，点击登录按钮可跳转到长安链GitLab进行授权登录。</p>
<p><img alt="" src="../images/docs/login.png" /></p>
<p><img alt="" src="../images/docs/authlogin.png" /></p>
<ul>
<li>如果您已经授权过，则下次将免授权登录。</li>
<li>您如果需要替换IDE的登录账户，请先替换长安链GitLab账号，再重新登录。</li>
</ul>
<h3 id="_7">全局界面分区说明<a class="headerlink" href="#_7" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/dashboard1.jpg" /></p>
<ul>
<li>文件目录模块用于管理合约工程及相关文件。</li>
<li>调试合约用于调试正在编写的合约代码</li>
<li>编译合约用于将所编写的合约代码编译成可部署的合约文件，支持导出到本地然后部署到链上，也支持直接通过IDE部署到链上。</li>
<li>部署合约用于将已编译的合约通过IDE直接部署到指定的区块链上。</li>
<li>调用合约用于通过IDE直接调用已经部署到链上的合约，用于验证合约是否部署成功。</li>
<li>系统设置用于设置IDE的UI样式，如主题，字号、行高等。</li>
<li>代码编写区用于编写合约代码。</li>
<li>代码大纲用于快速定位代码。</li>
<li>执行日志输出区用于展示在合约调试、合约编辑操作时产生的相关日志信息</li>
<li>合约事件展示用于展示合约在调试过程中产生的事件信息。</li>
<li>合约世界状态用于记录合约在调试过程中产生的状态信息，支持基于已存在的状态进行二次调试调用。 </li>
</ul>
<h3 id="_8">全局快捷键说明<a class="headerlink" href="#_8" title="Permanent link">#</a></h3>
<h4 id="mac">mac系统<a class="headerlink" href="#mac" title="Permanent link">#</a></h4>
<ul>
<li>command + \ 自动补全</li>
<li>ctrl + q ：关闭当前编译器</li>
<li>ctrl +n 创建新文件</li>
<li>command + c：复制选中内容</li>
<li>command+ v：粘贴所复制到内容</li>
<li>command + f：检索</li>
<li>command + l：跳转到行</li>
<li>command + e：删除当前行</li>
<li>command + s：保存当前编译器文件</li>
<li>command + shift + up ：复制到上方</li>
<li>command + shift + down：复制到下方</li>
<li>command + shift + s：保全当前所有编译区文件</li>
<li>command + shift + f ：格式化</li>
<li>command + shift + r：替换全部</li>
<li>command + 鼠标左键：跳转到函数方法详情</li>
</ul>
<h4 id="windows">Windows系统<a class="headerlink" href="#windows" title="Permanent link">#</a></h4>
<ul>
<li>ctrl + \ 自动补全</li>
<li>ctrl + q ：关闭当前编译器</li>
<li>ctrl + c：复制选中内容</li>
<li>ctrl + v：粘贴所复制到内容</li>
<li>ctrl + f：检索</li>
<li>ctrl + l：跳转到行</li>
<li>ctrl + e：删除当前行</li>
<li>ctrl + s：保存当前编译器文件</li>
<li>ctrl + shift + up ：复制到上方</li>
<li>ctrl + shift + down：复制到下方</li>
<li>ctrl + shift + s：保全当前所有编译区文件</li>
<li>ctrl + shift + f ：格式化</li>
<li>ctrl + shift + r：替换全部</li>
<li>ctrl + 鼠标左键：跳转到函数方法详情</li>
</ul>
<h3 id="_9">合约编写<a class="headerlink" href="#_9" title="Permanent link">#</a></h3>
<h4 id="_10">合约文件目录<a class="headerlink" href="#_10" title="Permanent link">#</a></h4>
<p><img alt="" src="../images/docs/contractdirectory.jpg" /></p>
<ul>
<li>每个用户都有一个workspace空间。首次使用IDE时，系统会默认创建一个Demo存证合约，供开发者体验。</li>
<li>您也可以在workspace下创建自己的合约项目，一个账户支持创建多个合约项目，并一个一级文件夹为基准区分合约工程。</li>
<li>支持对文件进行的常规操作，如新增、删除、导出、重命名等。</li>
<li>一个合约工程可以由多个文件构成，支持跨文件调用函数方法。</li>
<li>如果您已经有现成的合约文件，支持批量导入IDE内，单次最多可导入20个文件，每个文件大小不超过2M。如果文件实在太大无法导入，可以选择直接复制代码粘贴进来。</li>
</ul>
<p><img alt="" src="../images/docs/External_libraries.jpg" /></p>
<ul>
<li>此处展示 Go SDK 和依赖的第三方库的源码。可在代码编写区通过快捷键（command + 鼠标左键）跳转到源码，查看源码详情。</li>
</ul>
<h4 id="_11">合约代码编写<a class="headerlink" href="#_11" title="Permanent link">#</a></h4>
<p><img alt="" src="../images/docs/writecontract.jpg" /></p>
<ul>
<li>通过左上角的放大、缩小图标，快速改变代码编写区的的文字字体大小和行高。</li>
<li>通过右上角的展开/收齐图标可以展开/收齐代码编写区。</li>
<li>支持代码高亮、支持语义分析，语法检测、代码自动补全。</li>
<li>支持代码格式化。</li>
<li>支持同合约工程跨文件调用函数方法。</li>
<li>目前不支持自动保存功能，要进行合约调试和部署时，请注意先保存合约已更新最新代码信息。</li>
<li>通过代码审核按钮,可以将选中的合约进行合约代码安全性的审核</li>
</ul>
<h4 id="_12">合约源码的管理<a class="headerlink" href="#_12" title="Permanent link">#</a></h4>
<p><img alt="" src="../images/docs/contract-code-manage.jpg" /></p>
<ul>
<li>点击左上角的管理按钮,弹出编辑中合约列表</li>
<li>合约列表会展示用户工作目录下所有的合约,状态栏为当前合约的展示状态</li>
<li>可以通过操作列的"隐藏/显示"按钮来控制合约代码是否在当前工作目录中显示与否</li>
</ul>
<h3 id="_13">合约调试<a class="headerlink" href="#_13" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/contractdebug.png" /></p>
<ul>
<li>合约代码编写完后，会自动解析出代码里的的方法列表，支持在IDE内调用所编写的合约方法进行调试。</li>
<li>调试前需要先构建合约。</li>
<li>如果需要进行跨合约调用，则需要选择所要跨的合约，并一并进行构建，构建成功后，才能调试。</li>
<li>调试合约过程中，在底部会展示相关的执行日志，并记录所产生的合约事件 ，以及合约状态。</li>
<li>支持引用已有的状态值进行二次调试。</li>
</ul>
<p><img alt="" src="../images/docs/contractdebug.png" /></p>
<ul>
<li>为方便调试，支持手动增删改合约世界状态的key和value。</li>
<li>双击某一行，可展开/收起合约世界状态的历史迭代器，其中历史记录只能查看，不能修改。</li>
<li>为方便查看跨合约调用的合约状态变更情况，支持在世界状态处切换合约。</li>
</ul>
<h3 id="_14">合约编译及导出<a class="headerlink" href="#_14" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/contractbuildexport.png" /></p>
<ul>
<li>目前IDE所支持的合约语言为Go语言、支持的虚拟机类型为Docker Go虚拟机，支持的长安链版本为 V2.1.0+。</li>
<li>合约编译完成后，可直接在IDE内通过Web插件部署到链上，也可将编译后到文件下载到本地自行部署。</li>
</ul>
<h3 id="_15">部署合约到链上<a class="headerlink" href="#_15" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/contractdeploy.png" /></p>
<ul>
<li>可将编译好的合约，通过Web插件直接部署到指定的链上。若您部署合约时，未安装插件，请根据提示安装Web插件后，再部署合约。</li>
<li>选择合约时，请留意最新的编译时间，以免选错合约。</li>
<li>请留意合约名称+合约版本号必须唯一，不能与链上已有的合约有冲突。</li>
<li>目前暂不支持升级合约。</li>
<li>如果所要部署的合约，需要填一些额外信息，可在部署时一并写入。</li>
</ul>
<p><img alt="" src="../images/docs/contractdeploysuccess.png" /></p>
<ul>
<li>在Web插件上，需要预先链接区块链和添加上链账户信息，相关操作说明可参考 <a href="https://docs.chainmaker.org.cn/dev/%E9%95%BF%E5%AE%89%E9%93%BEWEB%E6%8F%92%E4%BB%B6-SmartPlugin.html">Web插件使用说明文档</a></li>
<li>通过IDE唤起Web插件后，选择该合约要部署的链，以及要使用的上链账号，并进行签名，发起上链交易。上链过程，视区块网络情况而定，可能需要一定的时间，请耐心等待几秒钟。</li>
<li>部署成功后，可在Web插件的上链记录里找到相关的上链记录，以及交易哈希，如查看更多信息，可复制交易哈希到区块链浏览器内查看交易详情。</li>
</ul>
<p><img alt="" src="../images/docs/compiled-contract-manage.jpg" />  </p>
<ul>
<li>点击管理按钮,弹出已编译合约列表。  </li>
<li>可以使用操作列的删除按钮,该按钮会删除已经编译的合约(仅删除用户工作目录下的,已经安装上链的不受影响)。    </li>
</ul>
<h3 id="_16">调用链上合约<a class="headerlink" href="#_16" title="Permanent link">#</a></h3>
<p><img alt="" src="../images/docs/contractinvoke.png" /></p>
<ul>
<li>当部署合约成功后，可以IDE内进行调用合约，已验证合约是否生效。</li>
<li>选择合约方法，输入参数后，点击合约调用，将唤起Web插件，并在插件上选择相应的链账号，进行调用。</li>
<li>上链过程，视区块网络情况而定，可能需要一定的时间，请耐心等待几秒钟。</li>
</ul>
<p><img alt="" src="../images/docs/contractinvokesuccess.png" /></p>
<ul>
<li>调用成功后，可在Web插件的上链记录里找到相关的上链记录，以及交易哈希，如查看更多信息，可复制交易哈希到区块链浏览器内查看交易详情。</li>
</ul>
<p><img alt="" src="../images/docs/contract-deployed-manage.jpg" />   </p>
<ul>
<li>点击左侧管理按钮,弹出已部署合约列表页面。    </li>
<li>可以点击操作中的删除,会删除该已部署合约的记录(不影响已经上链的合约)。    </li>
</ul>





                
              </article>
            </div>
          
          
        </div>
        
      </main>
      
        <footer class="md-footer">
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-copyright">
  
  
    Made with
    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
      Material for MkDocs
    </a>
  
</div>
      
    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
    <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.74e28a9f.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
    
    
      <script src="../assets/javascripts/bundle.220ee61c.min.js"></script>
      
    
  </body>
</html>